package com.bwie.product.mapper;

import com.bwie.common.doamin.dto.BoughtProductDTO;
import com.bwie.common.doamin.dto.ProductDTO;
import com.bwie.common.doamin.vo.ProductVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @className: ProductMapper
 * @Description: TODO
 * @version: v1.８.0
 * @author: 刘洋朔
 * @date: 2025/9/9 14:23
 */
@Mapper
public interface ProductMapper {
    /**
     * 获取所有商品信息
     * @return ProductVO
     */
    List<ProductVO> selAllProductList();

    /**
     * 获取信息
     * @param productId
     * @return ProductVO
     */
    ProductVO selProductInfo(@Param("productId") Long productId);

    /**
     * 获取对弈的产品数量,判断库存
     * @param productName
     * @return
     */
    ProductVO selProductInfoByName(@Param("productName") String productName);

    /**
     * 添加订单
     * @param boughtProductDTO
     */
    void insertOrder(BoughtProductDTO boughtProductDTO);

    /**
     * 减库存
     * @param productName
     * @param num
     */
    void lessProductNum(@Param("productName") String productName, @Param("num") Integer num);

    /**
     * page
     * @param productDTO
     * @return
     */
    List<ProductVO> selAllProductListByPage(ProductDTO productDTO);

    /**
     * 修改状态
     * @param userId
     * @param couponId
     */
    void updateCouponStatus(@Param("userId") Long userId, @Param("couponId") Long couponId);
}
